//package org.ricks.orm.mongodb.zfoo;
//
//import org.junit.*;
//import org.ricks.orm.util.MongoIdUtils;
//
//@Ignore
//public class QueryTest {
//
//
//    @Test
//    public void queryAllTest() {
//        var context = new ClassPathXmlApplicationContext("application.xml");
//
//        var id = MongoIdUtils.getIncrementIdFromMongoDefault(UserEntity.class);
//        var entity = new UserEntity();
//        entity.setId(id);
//        entity.setC((int)id);
//        entity.setE("User_"+id);
//        OrmContext.getAccessor().insert(entity);
//        var list = OrmContext.getQuery(UserEntity.class).eq("e", "User_1").eq("f", null).queryAll();
//        System.out.println(list);
//    }
//
//    @Test
//    public void queryByFieldTest() {
//        var context = new ClassPathXmlApplicationContext("application.xml");
//        var list = OrmContext.getQuery(UserEntity.class).eq("a", 1).queryAll();
//        System.out.println(list);
//    }
//
//
//    /**
//     * 2025-04-24 15:54:44 [ INFO] [main] com.zfoo.orm.query.QueryTest.test(QueryTest.java:67) - 第一次查询结果：p_lotteryEntity{id='67e3ca263c5a533e3ae6173d', playerId='VaIln7LXLwbMOB_Wp2Zfz', lotteryInfo={1=LotteryInfo{lotteryId=1, drawTimes=0, dayTimes=0}}} - 查询次数：1 - 总耗时：25  -- 平均每次耗时 cost time:25 ms
//     * 2025-04-24 15:54:44 [ INFO] [main] com.zfoo.orm.query.QueryTest.test(QueryTest.java:77) - 第二次查询结果：p_lotteryEntity{id='67e3ca283c5a533e3ae61747', playerId='kVAIEeAyk7zL1v7omfj_i', lotteryInfo={1=LotteryInfo{lotteryId=1, drawTimes=0, dayTimes=0}}} - 查询次数：1 - 总耗时：1  -- 平均每次耗时 cost time:1 ms
//     * 2025-04-24 15:54:44 [ INFO] [main] com.zfoo.orm.query.QueryTest.test(QueryTest.java:87) - 第三次查询结果：p_lotteryEntity{id='67e3ca283c5a533e3ae6174b', playerId='Rrs43-cjKyq-i-VvDtT5P', lotteryInfo={1=LotteryInfo{lotteryId=1, drawTimes=0, dayTimes=0}}} - 查询次数：1 - 总耗时：1  -- 平均每次耗时 cost time:1 ms
//     * 2025-04-24 15:54:44 [ INFO] [main] com.zfoo.orm.query.QueryTest.test(QueryTest.java:97) - 第四次查询结果：p_lotteryEntity{id='67ea013ef98b344049f0a364', playerId='icgOoAPA2Y3z5QaRb0z_M', lotteryInfo={1=LotteryInfo{lotteryId=1, drawTimes=0, dayTimes=0}}} - 查询次数：1 - 总耗时：1  -- 平均每次耗时 cost time:1 ms
//     *
//     * 总结与建议
//     * 验证索引有效性：检查查询是否命中联合索引（类似网页2中的 nfrom_1_timetag_1），避免全集合扫描。
//     * 预热缓存：在服务启动时主动执行高频查询，使数据/索引提前加载到内存。
//     * 监控执行计划：通过 explain() 分析查询是否复用缓存计划，优化索引策略。
//     * 调整连接池参数：适当增加连接池大小，减少连接初始化对首次查询的影响。
//     */
//    @Test
//    public void test() {
//        int num = 1;
//        var context = new ClassPathXmlApplicationContext("application.xml");
//        long s = System.currentTimeMillis();
//        p_lotteryEntity list = null;
//        for (int i = 0; i < num; i++) {
//            list = OrmContext.getQuery(p_lotteryEntity.class).eq("playerId","VaIln7LXLwbMOB_Wp2Zfz").queryFirst();
//        }
//        long e = System.currentTimeMillis();
//        log.info("第一次查询结果：{} - 查询次数：{} - 总耗时：{}  -- 平均每次耗时 cost time:{} ms", list.toString(),num, (e-s),
//                (e -s ) /num);
//
//
//        long s1 = System.currentTimeMillis();
//        p_lotteryEntity list1 = null;
//        for (int i = 0; i < num; i++) {
//            list1 = OrmContext.getQuery(p_lotteryEntity.class).eq("playerId","kVAIEeAyk7zL1v7omfj_i").queryFirst();
//        }
//        long e1 = System.currentTimeMillis();
//        log.info("第二次查询结果：{} - 查询次数：{} - 总耗时：{}  -- 平均每次耗时 cost time:{} ms", list1.toString(),num, (e1-s1),
//                (e1 -s1 ) /num);
//
//
//        long s2 = System.currentTimeMillis();
//        p_lotteryEntity list2 = null;
//        for (int i = 0; i < num; i++) {
//            list2 = OrmContext.getQuery(p_lotteryEntity.class).eq("playerId","Rrs43-cjKyq-i-VvDtT5P").queryFirst();
//        }
//        long e2 = System.currentTimeMillis();
//        log.info("第三次查询结果：{} - 查询次数：{} - 总耗时：{}  -- 平均每次耗时 cost time:{} ms", list2.toString(),num, (e2-s2),
//                (e2 -s2 ) /num);
//
//
//        long s3 = System.currentTimeMillis();
//        p_lotteryEntity list3 = null;
//        for (int i = 0; i < num; i++) {
//            list3 = OrmContext.getQuery(p_lotteryEntity.class).eq("playerId","icgOoAPA2Y3z5QaRb0z_M").queryFirst();
//        }
//        long e3 = System.currentTimeMillis();
//        log.info("第四次查询结果：{} - 查询次数：{} - 总耗时：{}  -- 平均每次耗时 cost time:{} ms", list3.toString(),num, (e3-s3),
//                (e3 -s3 ) /num);
//    }
//
//}
